import Vue from 'vue';
import App from './App.vue';
import uView from "uview-ui";
import './store';

import toast from './utils/toast';

// Promise.finally polyfill
!Promise.prototype.finally && (Promise.prototype.finally = function (callback: (value?: any) => any) {
  const P: any = this.constructor;

  return this.then(
    value => P.resolve(callback(value)),
    err => P.resolve(callback(err)),
  );
});

Vue.config.productionTip = false;

// 定义全局挂载在Vue上的方法
declare module 'vue/types/vue' {
  interface Vue {
      $toast: any,
      $$store: any,
      $$mutations: any,
      $u: any
  }
}

Vue.use(uView);

Vue.prototype.$toast = toast;

if (!wx.cloud) {
  console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
  wx.cloud.init({
    // env 参数说明：
    //   env 参数决定接下来小程序发起的云开发调用（wx.cloud.xxx）会默认请求到哪个云环境的资源
    //   此处请填入环境 ID, 环境 ID 可打开云控制台查看
    //   如不填则使用默认环境（第一个创建的环境）
    // env: 'my-env-id',
    traceUser: true,
  })
}

new App().$mount();
